#!/bin/sh
#--------------------------------------------
# shell脚本启动DataX
# 作者：developer
# 邮箱：developer@avic-digital.com
# 说明：Worker节点调用该脚本，启动DataX
# 注意：不支持Windows环境下使用
#--------------------------------------------

############### 用户配置区 ###############
# DataX安装包路径
CURR_DIR=$(cd $(dirname $0); pwd)
DATAX_PATH=${CURR_DIR%/*}

# DataX插件路径
CLASS_PATH="${DATAX_PATH}/lib/*:."

# DataX版本
DATAX_VERSION="DATAX-OPENSOURCE-3.0"

# 日志配置文件
LOGBACK_FILE="${DATAX_PATH}/conf/logback.xml"

# 远程调试命令
REMOTE_DEBUG_CONFIG="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9999"

# 获取DataX作业配置Json文件
JSON=$1
if [[ -z $JSON ]]; then
	echo "Json配置文件未配置"
	exit 1
fi

# 定义Job Json文件路径(注意：此处应该由DolphinScheduler传入json配置文件路径)
JSON_PATH="${DATAX_PATH}/bin/${JSON}"

# 日志文件名称(最后20个字符，/替换为-，.替换为-)
#JSON_NAME=${JSON##*/}
JSON_NAME1=${JSON:0-20}
JSON_NAME2=${JSON_NAME1///_}
JSON_NAME=${JSON_NAME2/./_}
jobParams="-Dlog.file.name=${JSON_NAME}"

# Java虚拟机配置
DEFAULT_JVM="-Xms1g -Xmx1g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${DATAX_PATH}/log"
DEFAULT_PROPERTY_CONF="-Dfile.encoding=UTF-8 -Dlogback.statusListenerClass=ch.qos.logback.core.status.NopStatusListener -Djava.security.egd=file:///dev/urandom -Ddatax.home=${DATAX_PATH} -Dlogback.configurationFile=${LOGBACK_FILE}"

# Java启动命令
ENGINE_COMMAND="java -server ${DEFAULT_JVM} ${DEFAULT_PROPERTY_CONF} -classpath ${CLASS_PATH}  ${jobParams} com.alibaba.datax.core.Engine -mode standalone -jobid -1 -job ${JSON}"

############### 执行Java启动命令 ###############
echo ${ENGINE_COMMAND}
exec ${ENGINE_COMMAND}
